import type { Component } from 'vue' //import type 是用来协助进行类型检查和声明的，在运行时是完全不存在的。

// 分页组件
import Pagination from '@/components/Pagination'
// 自定义表格工具组件
import RightToolbar from '@/components/RightToolbar'
// 富文本组件
import Editor from "@/components/Editor"
// 文件上传组件
import FileUpload from "@/components/FileUpload"
// 图片上传组件
import ImageUpload from "@/components/ImageUpload"
// 图片预览组件
import ImagePreview from "@/components/ImagePreview"
// 自定义树选择组件
import TreeSelect from '@/components/TreeSelect'
//自封上传图片
import uploadImage from "@/components/elMain/uploadImage.vue";
//选择时间
import DatePicker from "@/components/elMain/DatePicker.vue";
//时间区间
import datePickerRange from "@/components/elMain/datePickerRange.vue";
//上传文件
import FileUploader from "@/components/elMain/FileUploader.vue";
//上传裁剪图片
import uploadImageCropper from "@/components/elMain/uploadImageCropper.vue";
//时间区间
import TimeRange from "@/components/elMain/TimeRange.vue";
//选择日历
import dateSelectPicker from "@/components/elMain/dateSelectPicker.vue";
//上传文件夹
import FolderUploader from "@/components/elMain/FolderUploader.vue";
//饼图
import pie from "@/components/ECharts/pie.vue";
//柱状图
import bar from "@/components/ECharts/bar.vue";

//系统组件
import selectImage from "@/components/SystemMain/selectImage";//选图片
import depTreeSelect from "@/components/SystemMain/depTreeSelect.vue";//选择部门
import classificationTreeSelect from "@/components/SystemMain/classificationTreeSelect.vue";//选择分类
import menuTreeSelect from "@/components/elMain/menuTreeSelect.vue";//选择菜单
import menuTree from "@/components/elMain/menuTree.vue";//选择菜单
import roleSelect from "@/components/elMain/roleSelect.vue";//选择角色
import courseType from "@/components/elMain/courseType.vue";//课程列表
import dictSelect from "@/components/elMain/dictSelect.vue";//字典选择
import courseTypCascader from "@/components/elMain/courseTypCascader.vue";//课程分类
import courseQuery from "@/components/elMain/courseQuery.vue";//课程
import curriculumTags from "@/views/websiteConfiguration/components/curriculumTags.vue";//课程标签
import accountSelect from "@/components/elMain/accountSelect.vue";//班级老师
import classQuery from "@/components/elMain/classQuery.vue";//班级
import tagSelect from "@/components/elMain/tagSelect.vue";//课程标签


// ✨如果使用的是 JS 可以删除类型校验
const components: {
  [propName: string]: Component //字面量类型，每个属性值类型为组件的类型
} = {
  ImageUpload, Editor, Pagination, RightToolbar, FileUpload, ImagePreview, TreeSelect,
  uploadImage, selectImage, DatePicker, datePickerRange, depTreeSelect, classificationTreeSelect,
  menuTreeSelect, menuTree, roleSelect, FileUploader, uploadImageCropper, courseType, dictSelect,
  courseTypCascader, courseQuery, curriculumTags, accountSelect, TimeRange, dateSelectPicker,
  classQuery, FolderUploader, pie, bar, tagSelect,
}

export default components